let p1 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('hello')
  }, 10)
})

let p2 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('lagou')
  }, 10)
})

let p3 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('I ❤️ U')
  }, 10)
})

//因为题中是层层嵌套的延时函数，是一个按照时序执行的在最后一层进行数据拼接，因此可以将三层延时函数扁平化成三个单独的函数，用Promise.all的方法来执行三个函数，当都执行完就获取按顺序的数组，就能直接拼接了
Promise.all([p1, p2, p3]).then(value => {
  console.log(value.join(' '))
})